﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;

namespace UBCon.Ribbon
{
    public class RibbonScrollViewer : ScrollViewer
    {
        #region Constructors


        #endregion

        #region Properties

        [Bindable(true), 
        Category("Appearance"), 
        ReadOnly(false)]
        public bool SidedScroller
        {
            get { return (bool)GetValue(SidedScrollerProperty); }
            set { SetValue(SidedScrollerProperty, value); }
        }

        // Using a DependencyProperty as the backing store for SidedScroller.  This enables animation, styling, binding, etc...
        public static readonly System.Windows.DependencyProperty SidedScrollerProperty =
            System.Windows.DependencyProperty.Register("SidedScroller", typeof(bool), typeof(RibbonScrollViewer), new PropertyMetadata(false));


        [Bindable(true), Category("Behavior"), ReadOnly(true)]
        public bool CanLineUp
        {
            get { return (bool)GetValue(CanLineUpProperty); }
        }

        // Using a DependencyProperty as the backing store for CanLineUp.  This enables animation, styling, binding, etc...
        internal static readonly System.Windows.DependencyPropertyKey CanLineUpPropertyKey =
            System.Windows.DependencyProperty.RegisterReadOnly("CanLineUp", typeof(bool), typeof(RibbonScrollViewer), new PropertyMetadata(false));

        public static readonly System.Windows.DependencyProperty CanLineUpProperty = CanLineUpPropertyKey.DependencyProperty;

        [Bindable(true), Category("Behavior"), ReadOnly(true)]
        public bool CanLineDown
        {
            get { return (bool)GetValue(CanLineDownProperty); }
        }

        // Using a DependencyProperty as the backing store for LineDownEnabled.  This enables animation, styling, binding, etc...
        internal static readonly System.Windows.DependencyPropertyKey CanLineDownPropertyKey =
            System.Windows.DependencyProperty.RegisterReadOnly("CanLineDown", typeof(bool), typeof(RibbonScrollViewer), new PropertyMetadata(false));

        public static readonly System.Windows.DependencyProperty CanLineDownProperty = CanLineDownPropertyKey.DependencyProperty;

        [Bindable(true), 
        Category("Behavior"), 
        ReadOnly(true)]
        public bool CanLineLeft
        {
            get { return (bool)GetValue(CanLineLeftProperty); }
        }

        // Using a DependencyProperty as the backing store for LineLeftEnabled.  This enables animation, styling, binding, etc...
        internal static readonly System.Windows.DependencyPropertyKey CanLineLeftPropertyKey =
            System.Windows.DependencyProperty.RegisterReadOnly("CanLineLeft", typeof(bool), typeof(RibbonScrollViewer), new PropertyMetadata(false));

        internal static readonly System.Windows.DependencyProperty CanLineLeftProperty = CanLineDownPropertyKey.DependencyProperty;

        [Bindable(true), 
        Category("Behavior"), 
        ReadOnly(true)]
        public bool CanLineRight
        {
            get { return (bool)GetValue(CanLineRightProperty); }
        }

        // Using a DependencyProperty as the backing store for LineRightEnabled.  This enables animation, styling, binding, etc...
        internal static readonly System.Windows.DependencyPropertyKey CanLineRightPropertyKey =
            System.Windows.DependencyProperty.RegisterReadOnly("CanLineRight", typeof(bool), typeof(RibbonScrollViewer), new System.Windows.PropertyMetadata(true));

        internal static readonly System.Windows.DependencyProperty CanLineRightProperty = CanLineRightPropertyKey.DependencyProperty;
        #endregion

        #region Depenency Property Changed Callbacks
        #endregion

        #region Overrides

        #endregion

        #region Private Utilities
        #endregion

        #region Event Handlers
        #endregion

        #region Fields
        #endregion

        #region Events
        #endregion
    }
}
